#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<errno.h>
#include <sys/types.h>
int main()
{
    int a;
    a/=0;
    return 0;
}
//int main()
//{
//    FILE*pf=fopen("./haha.txt","r");
//    printf("errno:%d:%s\n",errno,strerror(errno));
//    return 0;
//}
//int main()
//{
//    for(int i=0; i<200; i++)
//    {
//        printf("%d:%s\n",i,strerror(i));
//    }
//    return 0;
//}
//int main()
//{
//    pid_t id=fork();
//    int cnt=20;
//    int a=100;
//    if(id==0)
//    {
//        //子进程
//        while(cnt>0)
//        {
//            printf("child  process pid:%d,a=%d,&a=%p\n",getpid(),a,&a);
//            sleep(1);
//            if(cnt==10)
//            {
//                a=200;
//            }
//            cnt--;
//        }
//    }
//    else{
//        //父进程
//        while(cnt>0)
//        {
//            printf("parent process pid:%d,a=%d,&a=%p\n",getpid(),a,&a);
//            sleep(1);
//            cnt--;
//        }
//    }
//    return 0;
//}
//int val1=0;
//int val2;
//int main(int argc, char*argv[], char*env[])
//{
//    printf("代码区:%p\n",main);
//    printf("初始化数据区:%p\n",&val1);
//    printf("未初始化数据区:%p\n",&val2);
//    char*val3_1=(char*)malloc(sizeof(char));
//    char*val3_2=(char*)malloc(sizeof(char));
//    char*val3_3=(char*)malloc(sizeof(char));
//    printf("堆区_1:%p\n",val3_1);
//    printf("堆区_2:%p\n",val3_2);
//    printf("堆区_3:%p\n",val3_3);
//    printf("栈区_1:%p\n",&val3_1);
//    printf("栈区_2:%p\n",&val3_2);
//    printf("栈区_3:%p\n",&val3_3);
//    //命令行参数表
//    for(int i=0;argv[i];i++)
//    {
//        printf("命令行参数表argv[%d]:%p\n",i,argv+i);
//    }
//    //命令行参数表内容
//    for(int i=0; argv[i];i++)
//    {
//        printf("命令行参数表内容argv[%d]:%p\n",i,argv[i]);
//    }
//    //环境变量表
//    for(int i=0;env[i];i++)
//    {
//        printf("环境变量表env[%d]:%p\n",i,env+i);
//    }
//    //环境变量表内容
//    for(int i=0; env[i];i++)
//    {
//        printf("环境变量表内容env[%d]:%p\n",i,env[i]);
//    }
//    return 0;
//}
